#include <stdint.h>

#if defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__x86_64__)
#define PROGMEM
#else
#include <avr/pgmspace.h>
#endif

int16_t primitive_number PROGMEM = 10;
char* primitives[] PROGMEM = {
  "caml_ml_flush",
  "caml_ml_output_char",
  "caml_ml_close_channel",
  "caml_ml_string_length",
  "caml_ml_output",
  "caml_ml_out_channels_list",
  "caml_format_int",
  "caml_ml_open_descriptor_in",
  "caml_ml_open_descriptor_out",
  "caml_register_named_value"
};

int16_t bytecode_size PROGMEM = 800;
char bytecode[] PROGMEM = {
  0x54, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
  0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00,
  0x1a, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00,
  0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
  0x63, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
  0x21, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00,
  0x1b, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
  0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
  0x43, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
  0x0c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
  0x02, 0x00, 0x00, 0x00, 0xf3, 0xff, 0xff, 0xff,
  0x1a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00,
  0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
  0x21, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
  0x1c, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00,
  0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00,
  0x5e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x59, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
  0x04, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
  0x02, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00,
  0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x68, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
  0x02, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
  0x2a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x01, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
  0x03, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
  0x0d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
  0x60, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
  0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
  0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
  0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
  0x43, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00,
  0x54, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
  0x68, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x44, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
  0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
  0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff,
  0x63, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
  0x05, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
  0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
  0x0c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
  0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
  0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xf7, 0xff, 0xff, 0xff,
  0x68, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
  0x07, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
  0x5d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
  0x6a, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00,
  0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xe1, 0xff, 0xff, 0xff,
  0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xbb, 0xff, 0xff, 0xff,
  0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xab, 0xff, 0xff, 0xff,
  0x0d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
  0x01, 0x00, 0x00, 0x00, 0xa1, 0xff, 0xff, 0xff,
  0x0c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
  0x2b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
  0x97, 0xff, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x00,
  0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
  0x08, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00,
  0x03, 0x00, 0x00, 0x00, 0x89, 0xff, 0xff, 0xff,
  0x0f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
  0x2b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x77, 0xff, 0xff, 0xff, 0x0b, 0x00, 0x00, 0x00,
  0x2b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x67, 0xff, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x00,
  0x36, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00,
  0x5e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
  0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x5a, 0xff, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x00,
  0x39, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
  0x04, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00,
  0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
  0x39, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
  0x08, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
  0x39, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
  0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
  0x35, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
  0x36, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
  0x21, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
  0x0a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
  0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
  0x35, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
  0x36, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
  0x21, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00
};

int16_t initial_data_size PROGMEM = 19;
int16_t initial_data[] PROGMEM = {
  0x0010, 0x0020, 0x002e, 0x0046, 0x0058, 0x0070, 0x0080, 0x0094,
  0x00aa, 0x00c0, 0x00d6, 0x00f8, 0x00fc, 0x0102, 0x011a, 0x0001,
  0x0001, 0x0001, 0x0001
};

int16_t initial_heap_size PROGMEM = 149;
int16_t initial_heap[] PROGMEM = {
  0x07fc, 0x754f, 0x5f74, 0x666f, 0x6d5f, 0x6d65, 0x726f, 0x0079,
  0x0100, 0x0000, 0x05fc, 0x7953, 0x5f73, 0x7265, 0x6f72, 0x0072,
  0x0100, 0x0014, 0x04fc, 0x6146, 0x6c69, 0x7275, 0x0065, 0x0100,
  0x0024, 0x09fc, 0x6e49, 0x6176, 0x696c, 0x5f64, 0x7261, 0x7567,
  0x656d, 0x746e, 0x0100, 0x0100, 0x0032, 0x06fc, 0x6e45, 0x5f64,
  0x666f, 0x665f, 0x6c69, 0x0065, 0x0100, 0x004a, 0x09fc, 0x6944,
  0x6976, 0x6973, 0x6e6f, 0x625f, 0x5f79, 0x657a, 0x6f72, 0x0100,
  0x0100, 0x005c, 0x05fc, 0x6f4e, 0x5f74, 0x6f66, 0x6e75, 0x0064,
  0x0100, 0x0074, 0x07fc, 0x614d, 0x6374, 0x5f68, 0x6166, 0x6c69,
  0x7275, 0x0065, 0x0100, 0x0084, 0x08fc, 0x7453, 0x6361, 0x5f6b,
  0x766f, 0x7265, 0x6c66, 0x776f, 0x0100, 0x0100, 0x0098, 0x08fc,
  0x7953, 0x5f73, 0x6c62, 0x636f, 0x656b, 0x5f64, 0x6f69, 0x0100,
  0x0100, 0x00ae, 0x08fc, 0x7341, 0x6573, 0x7472, 0x665f, 0x6961,
  0x756c, 0x6572, 0x0100, 0x0100, 0x00c4, 0x0efc, 0x6e55, 0x6564,
  0x6966, 0x656e, 0x5f64, 0x6572, 0x7563, 0x7372, 0x7669, 0x5f65,
  0x6f6d, 0x7564, 0x656c, 0x0100, 0x0100, 0x00da, 0x02fc, 0x6425,
  0x0100, 0x0bfc, 0x6550, 0x7672, 0x7361, 0x7669, 0x7365, 0x642e,
  0x5f6f, 0x7461, 0x655f, 0x6978, 0x0074, 0x07fc, 0x6568, 0x6c6c,
  0x206f, 0x6f77, 0x6c72, 0x2164, 0x0020
};

